package com.sxj.corejava.code09_集合.set;

import java.util.*;

/**
 * @author 石小俊
 * @date 2025年02月19日
 */
public class Test01_HashSet定义方式 {

    public static void main(String[] args) {
        // 定义方式一:根据默认初始容量与默认加载因子创建一个空集合
        // 初始容量:最大存放元素的数量,默认16
        // 加载因子:根据加载因子对集合进行扩容,其值<=1,默认0.75
        // 当集合中元素的数量超过了当前容量*加载因子的值时进行括号
        // 以默认值为例,当元素的数量超过了16*0.75=12个的时候进行扩容
        Set<String> set = new HashSet<>();
        // 可以指定初始容量
        set = new HashSet<>(10);
        // 也可以指定初始容量与加载因子
        set = new HashSet<>(10, 0.8f);

        List<String> list = new ArrayList<>(Arrays.asList("admin", "jack", "tom", "admin", "alex", "jack", "lucy"));
        System.out.println(list);
        // 可以将一个Collection集合转换成Set集合
        // 注意点:如果将一个List集合转换成Set时
        // 由于List的元素是可重复的,而Set元素是不可重复的
        // 因此,转换后会自动去除重复的元素
        set = new HashSet<>(list);
        System.out.println(set);

    }

}
